import type { FormSchemaGetter } from '#/adapter/form';
import type { VxeGridProps } from '#/adapter/vxe-table';

import { h } from 'vue'; // h 函数仍然需要，用于将组件传递给 VxeTable

// import { ossInfo } from '#/api/system/oss'; // ossInfo 现在在 OssImageRenderer.vue 中使用
import OssImageRenderer from './components/OssImageRenderer.vue'; // 新增：导入新组件

export const querySchema: FormSchemaGetter = () => [
  {
    component: 'Input',
    fieldName: 'brandCode',
    label: '品牌编码',
  },
  {
    component: 'Input',
    fieldName: 'brandName',
    label: '品牌名称',
  },
];

// 需要使用i18n注意这里要改成getter形式 否则切换语言不会刷新
// export const columns: () => VxeGridProps['columns'] = () => [
export const columns: VxeGridProps['columns'] = [
  { type: 'checkbox', width: 60 },
  {
    title: '品牌编码',
    field: 'brandCode',
  },
  {
    title: '品牌名称',
    field: 'brandName',
  },
  {
    title: 'logo',
    field: 'ossid',
    width: 100, // 您可以根据需要调整列宽
    slots: {
      default: ({ row }) => {
        if (!row || !row.ossid) {
          return ''; // 如果没有 ossid，则不显示任何内容
        }
        // 使用 h 函数渲染 OssImageRenderer 组件，并传递 ossid 作为 prop
        return h(OssImageRenderer, { ossid: row.ossid });
      },
    },
  },
  {
    title: '编辑人',
    field: 'updateByUserName',
  },
  {
    title: '编辑时间',
    field: 'updateTime',
  },
  {
    field: 'action',
    fixed: 'right',
    slots: { default: 'action' },
    title: '操作',
    width: 180,
  },
];

export const drawerSchema: FormSchemaGetter = () => [
  {
    label: '品牌ID',
    fieldName: 'id',
    component: 'Input',
    dependencies: {
      show: () => false,
      triggerFields: [''],
    },
  },
  {
    label: '品牌编码',
    fieldName: 'brandCode',
    component: 'Input',
    componentProps: {
      placeholder: '请输入品牌编码，忽略则自动生成',
    },
    // rules: 'required', // 改为非必填，提交时自动生成
  },
  {
    label: '品牌名称',
    fieldName: 'brandName',
    component: 'Input',
    rules: 'required',
  },
  {
    label: 'logo',
    fieldName: 'ossid',
    component: 'ImageUpload',
    componentProps: {
      // accept: 'image/*', // 可选拓展名或者mime类型 ,拼接
      // maxCount: 1, // 最大上传文件数 默认为1 为1会绑定为string而非string[]类型
    },
  },
];
